The present invention relates to an application program interface and methods for combining any number of arbitrarily selected image modifications in an image while assigning those modifications easily to an image area and/or image color to provide for optimally adjusting color, contrast, sharpness, and other image-editing functions in the image-editing process.
It is a well-known problem to correct color, contrast, sharpness, or other specific digital image attributes in a digital image. It is also well-known to those skilled in image-editing that it is difficult to perform multiple color, contrast, and other adjustments while maintaining a natural appearance of the digital image.
At the current stage of image-editing technology, computer users can only apply relatively basic functions to images in a single action, such as increasing the saturation of all pixels of an image, removing a certain colorcast from the entire image, or increasing the image""s overall contrast. Well-known image-editing tools and techniques such as layer masks can be combined with existing image adjustment functions to apply such image changes selectively. However, current methods for image editing are still limited to one single image adjustment at a time. More complex tools such as the Curves functions provided in image editing programs such as Adobe Photoshop(copyright) provide the user with added control for changing image color, but such tools are difficult to apply, and still very limited as they apply an image enhancement globally to the image.
Additional image editing tools also exist for reading or measuring color values in the digital image. In its current release, Adobe Photoshop(copyright) offers a feature that enables the user to place and move up to four color reference points in an image. Such color reference points read properties (limited to the color values) of the image area in which they are placed. It is known to those skilled in the art that the only purpose of such color reference points is to display the associated color values; there is no image operation associated with such reference points. The reference points utilized in image-editing software are merely offered as a control tool for measuring an image""s color values at a specific point within the image.
In other implementations of reference points used for measuring color in specific image regions, image-editing applications such as Adobe Photoshop(copyright), Corel Draw(copyright), and Pictographics iCorrect 3.0(copyright), allow the user to select a color in the image by clicking on a specific image point during a color enhancement and perform an operation on the specific color with which the selected point is associated. For example, the black-point adjustment in Adobe Photoshop(copyright) allows the user to select a color in the image and specify the selected color as black, instructing the software to apply a uniform color operation to all pixels of the image, so that the desired color is turned into black. This method is not only available for black-point operations, but for pixels that are intended to be white, gray (neutral), skin tone, or sky, etc.
While each of these software applications provide methods for reading a limited number of colors and allow for one single operation which is applied globally and uniformly to the image and which only applies one uniform color cast change based on the read information, none of the methods currently used allow for the placement of one or more graphical representations of image reference points (IRPs) in the image that can read color or image information, be assigned an image editing function, be associated with one or more image reference points (IRPs) in the image to perform image-editing functions, be moved, or be modified by the user such that multiple related and unrelated operations can be performed.
What is needed is an application program interface and methods for editing digital images that enable the user to place multiple, arbitrary reference points in a digital image and assign image-editing functions, weighted values or any such combinations to enable multiple image-editing functions to be applied to an image.
The present invention meets this need by enabling users to perform such complex image-editing operations easily by performing multiple, complex image enhancements in a single step. A method is described that allows the user to place a plurality of Image Reference Points [IRPs] in a digital image, assign an image-editing function to each IRP, and alter each image-editing function based on the desired intensity, effect, and its effect relative to other IRPs placed in the image, via any one of a variety of interface concepts described later in this disclosure.
A method for image processing of a digital image is disclosed comprising the steps of determining one or more sets of pixel characteristics; determining for each pixel characteristic set, an image editing function; providing a mixing function algorithm embodied on a computer-readable medium for modifying the digital image; and processing the digital image by applying the mixing function algorithm based on the one or more pixel characteristic sets and determined image editing functions. In one embodiment, the mixing function algorithm comprises a difference function. Optionally, the difference function algorithm calculates a value based on the difference of between pixel characteristics and one of the one or more determined pixel characteristic sets. In another embodiment, the mixing function algorithm includes a controlling function for normalizing the calculations.
In a further embodiment, the method adds the step of determining for each pixel characteristic set, a set of weighting values, and the processing step further comprises applying the mixing function algorithm based on the determined weighting value set.
In a further embodiment, a first pixel characteristic set is determined, and at least one characteristic in the first pixel characteristic set is location dependent, and at least one characteristic in the first pixel characteristic set is either color dependent, or structure dependent, or both. Alternatively, a first pixel characteristic set is determined, and at least two different characteristics in the first pixel characteristic set are from the group consisting of location dependent, color dependent, and structure dependent.
A method for processing of a digital image comprising the steps of receiving the coordinates of one or more than one image reference point defined by a user within the digital image; receiving one or more than one image editing function assigned by the user and associated with the coordinates of the one or more than one defined image reference point; providing a mixing function algorithm embodied on a computer-readable medium for modifying the digital image; and processing the digital image by applying the mixing function algorithm based on the one or more than one assigned image editing function and the coordinates of the one or more than one defined image reference point.
The method may optionally further comprise displaying a graphical icon at the coordinates of a defined image reference point.
A mixing function algorithm suitable to the invention is described, and exemplar alternative embodiments are disclosed, including a group consisting of a Pythagoras distance approach which calculates a geometric distance between each pixel of the digital image to the coordinates of the one or more than one defined image reference point, a color curves approach, a segmentation approach, a classification approach, an expanding areas approach, and an offset vector approach. Optionally, the segmentation approach comprises multiple segmentation, and additionally optionally the classification approach adjusts for similarity of pixel attributes. The mixing function algorithm may optionally operate as a function of the calculated geometric distance from each pixel of the digital image to the coordinates of the defined image reference points.
Optionally, the disclosed method further comprises receiving one or more assigned image characteristics associated with the coordinates of a defined image reference point, and wherein the mixing function algorithm calculates a characteristic difference between the image characteristics of a pixel of the digital image and the assigned image characteristics. The mixing function algorithm may also calculate a characteristic difference between the image characteristics of a pixel and the image characteristics of one or more pixels neighboring the coordinates of one or more defined image reference point.
Additionally, optionally other steps may be added to the method. For example, the method may further comprise receiving one or more weighting values, and the processing step further comprising applying the mixing function algorithm based on weighting values; or further comprise receiving one or more regions of interest associated with the coordinates of one or more defined image reference point; or further comprise the step of providing an application program interface comprising a first interface to receive the coordinates of the one or more defined image reference points, and a second interface to receive the one or more assigned image editing functions.
A method for processing of a digital image comprising pixels having image characteristics is disclosed comprising the steps defining the location of image reference points within the digital image; determining image editing functions; and processing the digital image by applying the determined image editing functions based upon either the location of the defined image reference points, or the image characteristics of the pixels at the location of the defined image reference points, or both.
A method for image processing of a digital image is also disclosed comprising the steps of providing one or more than one image processing filter; setting the coordinates of one or more than one image reference point within the digital image; providing a mixing function algorithm embodied on a computer-readable medium for modifying the digital image; and processing the digital image by applying the mixing algorithm based on the one or more than one image processing filter and the coordinates of the one or more than one set image reference point. Optionally, various filters may be used, including but not limited to a noise reduction filter, a sharpening filter, or a color change filter.
An application program interface is provided embodied on a computer-readable medium for execution on a computer for image processing of a digital image, the digital image comprising pixels having image characteristics, comprising a first interface to receive the coordinates of each of a plurality of image reference points defined by a user within the digital image, and a second interface to receive an image editing function assigned by the user and associated with either the coordinates of each of the plurality of defined image reference points, or the image characteristics of one or more pixels neighboring the coordinates of each of the plurality of defined image reference points.
In a further embodiment, the second interface is to receive an image editing function assigned by the user and associated with both the coordinates of each of the plurality of defined image reference points, and the image characteristics of one or more pixels neighboring the coordinates of each of the plurality of defined image reference points.
In a further alternative optional embodiment, the program interface further comprises a third interface that displays a graphical icon at the coordinates of one or more than one of the plurality of defined image reference points. Additionally optionally, the third interface permits repositioning of the graphical icon.
In further embodiments, the program interface further comprises a fourth interface that displays the assigned image editing function. The second interface may further receive an image area associated with the coordinates of one or more than one of the plurality of defined image reference points. The second interface may further receive a color area associated with the coordinates of one or more than one of the plurality of defined image reference points.
A further embodiment of an application program interface is disclosed, embodied on a computer-readable medium for execution on a computer for image processing of a digital image, the digital image comprising pixels having image characteristics, comprising a first interface to receive the coordinates of an image reference point defined by a user within the digital image, and a second interface to receive an image editing function assigned by the user and associated with both the coordinates of the defined image reference point, and the image characteristics of one or more pixels neighboring the coordinates of the defined image reference point.